package com.fowo.api.model.sourcing.manage;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 寻源管理 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class SourcingManageImportPo {

  /** 开发任务编号 */
  @ExcelProperty("*开发任务编号")
  @NotBlank(message = "开发任务编号不能为空")
  private String taskIdTaskId;

  @ExcelIgnore
  @Schema(title = "*开发任务编号")
  private String taskId;

  /** 寻源时间 */
  @ExcelProperty("*寻源时间")
  @NotBlank(message = "寻源时间不能为空")
  @DateTimeString(message = "寻源时间不是有效的时间日期格式")
  private String sourcingTime;

  /** 寻源人员 */
  @ExcelProperty("*寻源人员")
  @NotBlank(message = "寻源人员不能为空")
  @Size(max = 50, message = "寻源人员长度不能超过50")
  private String sourcingPersonnelName;

  @ExcelIgnore
  @Schema(title = "*寻源人员")
  private String sourcingPersonnel;

  /** 经销商分类 */
  @ExcelProperty("*经销商分类")
  @NotBlank(message = "经销商分类不能为空")
  private String dealerClassification;

  /** 未完成原因 */
  @ExcelProperty("未完成原因")
  @Size(max = 500, message = "未完成原因长度不能超过500")
  private String incompleteCompletionReason;

  /** 状态 */
  @ExcelProperty("*状态")
  @NotBlank(message = "状态不能为空")
  @EnumsString(
    value = { "接收", "未完成", "完成", "已失效" },
    message = "状态只能是“接收”, “未完成”, “完成”, “已失效”中的一个"
  )
  private String state;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 200, message = "备注长度不能超过200")
  private String remark;

  /** 工牌胸卡 */
  @ExcelProperty("*工牌胸卡")
  @NotBlank(message = "工牌胸卡不能为空")
  @LongString(message = "工牌胸卡数值格式不正确", label = "工牌胸卡")
  private String workBadge;

  /** 经销商行业 */
  @ExcelProperty("*经销商行业")
  @NotBlank(message = "经销商行业不能为空")
  @Size(max = 50, message = "经销商行业长度不能超过50")
  private String dealerIndustry;

  /** 编号 */
  @ExcelProperty("*编号")
  @NotBlank(message = "编号不能为空")
  @LongString(message = "编号数值格式不正确", label = "编号")
  private String enterpriseId;

  /** 企业简称 */
  @ExcelProperty("*企业简称")
  @NotBlank(message = "企业简称不能为空")
  @Size(max = 50, message = "企业简称长度不能超过50")
  private String enterpriseAbbreviation;

  /** 企业名称 */
  @ExcelProperty("*企业名称")
  @NotBlank(message = "企业名称不能为空")
  @Size(max = 50, message = "企业名称长度不能超过50")
  private String enterpriseName;

  /** 社会信用代码 */
  @ExcelProperty("*社会信用代码")
  @NotBlank(message = "社会信用代码不能为空")
  @LongString(message = "社会信用代码数值格式不正确", label = "社会信用代码")
  private String socialCreditCode;

  /** 注册资本 */
  @ExcelProperty("*注册资本")
  @NotBlank(message = "注册资本不能为空")
  @LongString(message = "注册资本数值格式不正确", label = "注册资本")
  private String registeredCapital;

  /** 经营范围 */
  @ExcelProperty("*经营范围")
  @NotBlank(message = "经营范围不能为空")
  @Size(max = 50, message = "经营范围长度不能超过50")
  private String businessScope;

  /** 地点 */
  @ExcelProperty("*地点")
  @NotBlank(message = "地点不能为空")
  @Size(max = 50, message = "地点长度不能超过50")
  private String address;

  /** 是否源头工厂 */
  @ExcelProperty("*是否源头工厂")
  @NotBlank(message = "是否源头工厂不能为空")
  @BooleanString(message = "是否源头工厂格式不正确，请使用“是”，“否”")
  private String ifSourceFactory;

  /** 设计人员 */
  @ExcelProperty("设计人员")
  @Size(max = 50, message = "设计人员长度不能超过50")
  private String designers;

  /** 打版师 */
  @ExcelProperty("打版师")
  @Size(max = 50, message = "打版师长度不能超过50")
  private String typesetter;

  /** 排产人员 */
  @ExcelProperty("排产人员")
  @Size(max = 50, message = "排产人员长度不能超过50")
  private String productionSchedulingPersonnel;

  /** 生产人员 */
  @ExcelProperty("生产人员")
  @Size(max = 50, message = "生产人员长度不能超过50")
  private String productionPersonnel;

  /** 财务行政人员 */
  @ExcelProperty("财务行政人员")
  @Size(max = 50, message = "财务行政人员长度不能超过50")
  private String financialAdministrativePersonnel;

  /** 加工制造能力 */
  @ExcelProperty("加工制造能力")
  @Size(max = 50, message = "加工制造能力长度不能超过50")
  private String processManufacturingCapacity;

  /** 固定资产 */
  @ExcelProperty("*固定资产")
  @NotBlank(message = "固定资产不能为空")
  @Size(max = 50, message = "固定资产长度不能超过50")
  private String fixedAssets;

  /** 流动资金 */
  @ExcelProperty("*流动资金")
  @NotBlank(message = "流动资金不能为空")
  @Size(max = 50, message = "流动资金长度不能超过50")
  private String currentAssets;

  /** 应收应付账款 */
  @ExcelProperty("*应收应付账款")
  @NotBlank(message = "应收应付账款不能为空")
  @Size(max = 50, message = "应收应付账款长度不能超过50")
  private String receivablePayableAccounts;

  /** 库存情况 */
  @ExcelProperty("*库存情况")
  @NotBlank(message = "库存情况不能为空")
  @Size(max = 50, message = "库存情况长度不能超过50")
  private String inventoryStatus;

  /** 企业 */
  @ExcelProperty("*企业")
  @NotBlank(message = "企业不能为空")
  @Size(max = 50, message = "企业长度不能超过50")
  private String enterprise;

  /** 法人 */
  @ExcelProperty("*法人")
  @NotBlank(message = "法人不能为空")
  @Size(max = 50, message = "法人长度不能超过50")
  private String legalPerson;

  /** 开发任务子表编号 */
  @ExcelProperty("开发任务子表编号")
  @LongString(
    message = "开发任务子表编号数值格式不正确",
    label = "开发任务子表编号"
  )
  private String taskItemId;
}
